//package com.zrx.zrxaiagent.rabbitMQ;
//
//import com.rabbitmq.client.Channel;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.stereotype.Component;
//
//import java.io.IOException;
//
//@Component
//public class DelayTaskConsumer {
//
//    private static final Logger logger = LoggerFactory.getLogger(DelayTaskConsumer.class);
//
//    @RabbitListener(queues = "delay.queue")
//    public void handleDelayTask(DelayTask task, Message message, Channel channel) throws IOException {
//        try {
//            long deliveryTag = message.getMessageProperties().getDeliveryTag();
//
//            logger.info("开始处理延迟任务: taskId={}, taskType={}", task.getTaskId(), task.getTaskType());
//
//            // 根据任务类型处理不同的业务逻辑
//            processTask(task);
//
//            // 手动确认消息
//            channel.basicAck(deliveryTag, false);
//
//            logger.info("延迟任务处理完成: taskId={}", task.getTaskId());
//
//        } catch (Exception e) {
//            logger.error("处理延迟任务失败: taskId={}", task.getTaskId(), e);
//
//            // 拒绝消息并重新入队
//            channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);
//        }
//    }
//
//    @RabbitListener(queues = "immediate.queue")
//    public void handleImmediateTask(DelayTask task, Message message, Channel channel) throws IOException {
//        try {
//            long deliveryTag = message.getMessageProperties().getDeliveryTag();
//
//            logger.info("开始处理即时任务: taskId={}, taskType={}", task.getTaskId(), task.getTaskType());
//
//            processTask(task);
//
//            channel.basicAck(deliveryTag, false);
//
//            logger.info("即时任务处理完成: taskId={}", task.getTaskId());
//
//        } catch (Exception e) {
//            logger.error("处理即时任务失败: taskId={}", task.getTaskId(), e);
//            channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);
//        }
//    }
//
//    /**
//     * 处理具体任务
//     */
//    private void processTask(DelayTask task) {
//        // 根据任务类型处理不同的业务逻辑
//        switch (task.getTaskType()) {
//            case "scene_link":
//                // 处理场景联动任务
//                handleSceneLinkTask(task);
//                break;
//            case "work_order":
//                // 处理工单任务
//                handleWorkOrderTask(task);
//                break;
//            case "notification":
//                // 处理通知任务
//                handleNotificationTask(task);
//                break;
//            default:
//                logger.warn("未知任务类型: {}", task.getTaskType());
//        }
//    }
//
//    private void handleSceneLinkTask(DelayTask task) {
//        // 实现场景联动逻辑
//        logger.info("处理场景联动任务: {}", task.getContent());
//    }
//
//    private void handleWorkOrderTask(DelayTask task) {
//        // 实现工单逻辑
//        logger.info("处理工单任务: {}", task.getContent());
//    }
//
//    private void handleNotificationTask(DelayTask task) {
//        // 实现通知逻辑
//        logger.info("处理通知任务: {}", task.getContent());
//    }
//}
